Machine learning for intensive care.¶

Chris McWilliams PhD¶

Engineering Mathematics, University of Bristol and
University Hospitals Bristol NHS Foundation Trust

Contents¶

1. What is machine learning?¶

2. Machine learning in practice.¶

3. Not even machine learning.¶

4. Conclusion.¶

1. What is machine learning?¶

  • “The field of study that gives computers the ability to learn without being explicitly programmed.” (Arthur Samuel)
  • “A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.” (Tom Mitchell)

(https://www.coursera.org/learn/machine-learning)

In [32]:
image = Image('resources/hastie_book.jpg')#, width=700)
sh = display(image)

(Hastie et al, 2001)

In [17]:
image = Image('resources/Supervised-Learning-versus-Unsupervised-Learning-Mathworks-nd.png', width=800)
sh = display(image)

(Bunker & Thabtah, 2017)

In [16]:
image = Image('resources/expert_system.png', width=800)
sh = display(image)

(www.igcseict.info/theory/7_2/expert/)

In [30]:
image = Image('resources/classification_versus_regression.png', width=700)
sh = display(image)

(https://blog.statsbot.co/machine-learning-algorithms-183cc73197c)

In [31]:
image = Image('resources/clustering_versus_classification.png', width=700)
sh = display(image)

(https://deepcast.ai/media/article3/)

In [40]:
image = Image('resources/deeplearning1.png', width=700)
sh = display(image)

(https://www.ibm.com/blogs/systems/deep-learning-performance-breakthrough/)

In [43]:
image = Image('resources/deep_learning_growth.jpg', width=600)
sh = display(image)

(Jiang et al, 2017)

In [ ]:
 

1.1 How to do machine learning: a standard workflow.¶

In [15]:
image = Image('resources/black_box.png', width=800)
sh = display(image)

(callingbullshit.org/case_studies/case_study_ml_sexual_orientation_original_version.html)

In [37]:
image = Image('resources/tools_used_in_ai.jpg', width=700)
sh = display(image)

(Jiang et al, 2017)

Data prepartion¶

In [29]:
image = Image('resources/data_stress.jpg', width=700)
sh = display(image)

(https://the-modeling-agency.com/data-messy-dont-panic/)

Feature extraction¶

(this is very important - come back to it! - key difference with deep learning)

In [34]:
image = Image('resources/feature_extraction.png', width=700)
sh = display(image)

Model development¶

In [39]:
image = Image('resources/train_validate_test.png', width=600)
sh = display(image)

(https://towardsdatascience.com/train-validation-and-test-sets-72cb40cba9e7)

Which model?¶

In [37]:
image = Image('resources/tools_used_in_ai.jpg', width=700)
sh = display(image)

(Jiang et al, 2017)

It depends a lot on the data and what you are trying to learn. Quite standard practice to fit a simple model (e.g logistic regression) and a more powerful mode (e.g. random forest) and see which works best.

2. Machine learning in practice.¶

2.1 Unsupervised learning: patient subgroups¶

"Identifying distinct subgroups of ICU patients: a machine learning approach"¶


(https://towardsdatascience.com/train-validation-and-test-sets-72cb40cba9e7)

In [6]:
image = Image('resources/clustering_versus_classification.png', width=700)
sh = display(image)
In [4]:
image = Image('resources/subgroups_table.png') #, width=1500)
sh = display(image)

"Identifying patients subtypes on the intensive care unit."¶

(Corrigan, Harush, Morgan, Shelim, Zulkarnaen, 2018)

Data: Physionet Challenge 2012


(https://physionet.org/challenge/2012/)

In [57]:
image = Image('resources/student_clusters.png') #, width=1500)
sh = display(image)
In [66]:
image = Image('resources/student_table.png', width=500)
sh = display(image)

2.2 Supervised learning: Patient discharge classifier¶

In [8]:
image = Image('resources/nld_criteria_original.png')
sh = display(image)

title and citation for this paper¶

In [4]:
image = Image('resources/codified_nld.png')
sh = display(image)

title and citation for our paper¶

In [95]:
## thanks to: https://stackoverflow.com/questions/47637739/how-to-display-two-local-images-side-by-side-in-jupyter
## and border removal, thanks God! : https://github.com/ipython/ipython/issues/8581
display(HTML("<table style='border: 0'><tr style='border: 0'><td style='border: 0'><p style='border: none!important;'><img src='resources/time_panel_survivor_ptassess.png'></td><td style='border: 0'><img src='resources/time_panel_survivor_labres.png'></td></tr></table>"))

In [62]:
display(HTML("<table><tr><td><img src='resources/time_panel_survivor2_ptassess.png'></td><td><img src='resources/time_panel_survivor2_labres.png'></td></tr></table>"))
In [47]:
display(HTML("<table><tr><td><img src='resources/time_panel_mortality_ptassess.png'></td><td><img src='resources/time_panel_mortality_labres.png'></td></tr></table>"))
In [52]:
image = Image('resources/comparison_table.png')
sh = display(image)
In [6]:
image = Image('resources/cohort_table.png')
sh = display(image)
In [8]:
image = Image('resources/clustering_versus_classification.png', width=700)
sh = display(image)
In [15]:
image = Image('resources/tsne.png') #, width=1500)
sh = display(image)
In [14]:
image = Image('resources/figure1.png', width=1500)
sh = display(image)
In [5]:
image = Image('resources/performance_table_imputed.png')
sh = display(image)
In [7]:
image = Image('resources/fimp_table_imputed.png')
sh = display(image)
In [ ]:
 
In [ ]:
 
In [50]:
image = Image('resources/ebi_logo.png')
sh = display(image)
In [51]:
image = Image('resources/labres_gicu_survivors.png')
sh = display(image)

Not sure about these...¶

In [16]:
image = Image('resources/time_of_day_hists.png') #, width=1500)
sh = display(image)
In [17]:
image = Image('resources/time_of_day_patterns.png') #, width=1500)
sh = display(image)

2.3 Supervised learning: Length of stay regression¶

Mention groups in Bristol working on this. (And others?)

2.4 Deep learning: digit recongition¶

In [45]:
image = Image('resources/rfd_board_whole.png') #, width=1500)
sh = display(image)

First, data preparation..¶

In [46]:
image = Image('resources/rfd_board_template_only.png') #, width=1500)
sh = display(image)
In [47]:
image = Image('resources/rfd_board_elements.png') #, width=1500)
sh = display(image)
In [48]:
image = Image('resources/rfd_board_1_&_8.png') #, width=1500)
sh = display(image)
In [55]:
image = Image('resources/rfd_board_1_&_8_contoured.png') #, width=1500)
sh = display(image)

Then, machine learning...¶

In [54]:
image = Image('resources/tensor_flow_example.png', width=700)
sh = display(image)

(https://www.tensorflow.org/)

In [52]:
image = Image('resources/rfd_board_predictions.png') #, width=1500)
sh = display(image)
In [53]:
image = Image('resources/sevens.png') #, width=1500)
sh = display(image)

More deep learning examples...¶

Image recognition for breast cancer/lymph nodes¶

Image processing: detecting diabetic retinopathy¶

Image processing: detecting cardiovascular problems from retinal scans¶

Deep learning in ICU: neural nets for length of stay, see bleow:¶

Cardiac length of stay prediction:¶

  • Litton, Edward, Michael McCann, and Frank van Haren. "Predicting Intensive Care Unit Length of Stay After Cardiac Surgery." (2018).
  • Maharlou, Hamidreza, et al. "Predicting Length of Stay in Intensive Care Units after Cardiac Surgery: Comparison of Artificial Neural Networks and Adaptive Neuro-fuzzy System." Healthcare informatics research 24.2 (2018): 109-117.
  • LaFaro, Rocco J., et al. "Neural network prediction of ICU length of stay following cardiac surgery based on pre-incision variables." PloS one 10.12 (2015): e0145395.

Take home message: be very sceptical of anyone using neural nets with this little data!

Other deep learning neural net stuff in ICU is out there....

SEARCH¶

Notably Deepmind Health are NOT doing deep learning....

  • talk about who they are (what they usually do)
  • why not doing deep learning
  • what are they doing?

3. Not even machine learning¶

"Quote about automation of simple tasks"¶

(Who said this?)

Previous work in Bristol:¶

(make some slides on this but probably will skip them)

  • dash board
  • ventilator study
  • opt-in versus opt-out
  • chlorhexidine, patient movement
In [9]:
image = Image('resources/bd2k.jpg', width=700)
sh = display(image)

(Friedman, 2015)

Talk about our deicison support tool for discharge.

And what it could be extended to.

Link to discharge tool...

4. Conclusion.¶

Take home messages:¶

To include:¶

  • Barriers to machine learning in ICU
  • Potential areas for rapid advances
  • Things to be careful of

To include:¶

  • Discharge tool
  • Extension to general decision support
  • Transfer learning
  • Ranking experiment

References:¶

  • Friedman, Jerome, Trevor Hastie, and Robert Tibshirani. The elements of statistical learning. Vol. 1. No. 10. New York, NY, USA:: Springer series in statistics, 2001.
  • Jiang, Fei, et al. "Artificial intelligence in healthcare: past, present and future." Stroke and vascular neurology 2.4 (2017): 230-243.
  • Bunker, Rory P., and Fadi Thabtah. "A machine learning framework for sport result prediction." Applied Computing and Informatics (2017).
  • Vranas, Kelly C., et al. "Identifying distinct subgroups of ICU patients: a machine learning approach." Critical care medicine 45.10 (2017): 1607-1615.
  • Silva, Ikaro, et al. "Predicting in-hospital mortality of icu patients: The physionet/computing in cardiology challenge 2012." Computing in cardiology 39 (2012): 245.
In [ ]: